// pages/applydetail/baojieapply/baojieapply.js
var utils = require('../../../utils/util.js')
//获取应用实例
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 工作时间默认是1  
    num: 1,
    popErrorMsg: '',
    // 使用data数据对象设置样式名  
    minusStatus: 'disabled',
    datearray: [],
    applyform: { name: String, sex: '先生', tel: String, date: '选择预约时间', area: String, workaddition: [], remark: String },
    inputValue: '',//点击结果项之后替换到文本框的值
    adapterSource: utils.xiaoqu(),//本地匹配源
    bindSource: [],//绑定到页面的数据，根据用户输入动态变化
    array: ['1', '2', '3', '4', '5', '6', '7', '8'],
    sexitems: [
      { name: '先生', value: '先生', checked: "true" },
      { name: '女士', value: '女士' },
    ],
    additionitems: [
      { name: 'USA', value: '开荒保洁' },
      { name: 'CHN', value: '日常清理' },
      { name: 'BRA', value: '需要擦玻璃' },
      { name: 'JPN', value: '大面积' },
      { name: 'ENG', value: '厨余垃圾' },
      { name: 'TUR', value: '污水治理' },
    ],
    //防触摸遮罩
    showtoast: { mask: false }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      datearray: utils.getdate()
    });
    wx.setNavigationBarTitle({
      title: '预约保洁阿姨'//页面标题为路由参数
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  namechange: function (e) {
    this.setData({
      'applyform.name': e.detail.value
    })
  },
  telchange: function (e) {
    this.setData({
      'applyform.tel': e.detail.value
    })
  },
  radioChange: function (e) {
    this.setData({
      'applyform.sex': e.detail.value
    })
  },
  /* 点击减号 */
  bindMinus: function () {
    var num = this.data.num;
    // 如果大于1时，才可以减  
    if (num > 1) {
      num--;
    }
    // 只有大于一件的时候，才能normal状态，否则disable状态  
    var minusStatus = num <= 1 ? 'disabled' : 'normal';
    // 将数值与状态写回  
    this.setData({
      num: num,
      minusStatus: minusStatus
    });
  },
  /* 点击加号 */
  bindPlus: function () {
    var num = this.data.num;
    // 不作过多考虑自增1  
    num++;
    // 只有大于一件的时候，才能normal状态，否则disable状态  
    var minusStatus = num < 1 ? 'disabled' : 'normal';
    // 将数值与状态写回  
    this.setData({
      num: num,
      minusStatus: minusStatus
    });
  },
  /* 输入框事件 */
  bindManual: function (e) {
    var num = e.detail.value;
    var minusStatus = num < 1 ? 'disabled' : 'normal';
    // 将数值与状态写回  
    this.setData({
      num: this.data.array[num],
      minusStatus: minusStatus
    });
  },
  //日期选择事件
  bindMultiPickerChange: function (e) {
    var datestr = this.data.datearray[0][e.detail.value[0]].key
      + ' ' + this.data.datearray[1][e.detail.value[1]].key;
    this.setData({
      'applyform.date': datestr
    });
  },
  bindinput: function (e) {
    var prefix = e.detail.value//用户实时输入值
    var newSource = []//匹配的结果
    if (prefix != "") {
      this.data.adapterSource.forEach(function (e) {
        if (e.indexOf(prefix) != -1) {
          newSource.push(e)
        }
      })
    }
    if (newSource.length != 0) {
      this.setData({
        bindSource: newSource,
        inputValue: prefix
      })
    } else {
      this.setData({
        bindSource: [],
        inputValue: prefix
      })
    }
  },
  addressblur: function (e) {
    var prefix = e.detail.value//用户实时输入值
    if (prefix != '') {
      this.setData({
        bindSource: []
      })
    }
  },
  itemtap: function (e) {
    this.setData({
      inputValue: e.target.id,
      bindSource: []
    })
  },
  workadditionchange: function (e) {
    this.setData({
      'applyform.workaddition': e.detail.value
    })
  },
  workremarkchange: function (e) {
    this.setData({
      'applyform.remark': e.detail.value
    })

  },
  //确认申请
  formsubmit: function (e) {
    var name = this.data.applyform.name;
    var tel = this.data.applyform.tel;
    var sex = this.data.applyform.sex;
    var date = this.data.applyform.date;
    var area = this.data.inputValue;
    var remark = this.data.applyform.remark;
    var workaddition = this.data.applyform.workaddition.join(',');
    var worktime = this.data.num;
    if (!this.checkNUll(name, '', '姓名不能为空')) {
      return;
    }
    if (!this.checkNUll(tel, '', '联系方式不能为空')) {
      return;
    }
    if (!this.checkNUll(area, '', '小区地址不能为空')) {
      return;
    }
    if (!this.checkNUll(date, '选择预约时间', '预约时间不能为空')) {
      return;
    }
    var that = this;
    that.setData({
      'showtoast.mask': true
    });
    wx.showLoading({
      title: '预约中...',
    })
    wx.request({
      method: "POST",
      url: 'https://api.caomaohu.com/api/workapply/save', //仅为示例，并非真实的接口地址
      data: {
        employer: name + sex,
        tel: tel,
        applytime: date + ':00',
        area: area,
        worktime: worktime,
        workaddition: workaddition,
        requirement: remark,
        type: 'baojie',
      },
      header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        wx.hideToast();
        if (res.data.code == 0) {
          wx.showToast({
            title: '预约成功',
            icon: 'success',
            complete: function () {
            }
          });
          setTimeout(function () {
            that.setData({
              'showtoast.mask': false
            });
            wx.hideToast()
            wx.switchTab({
              url: '../../order/order'
            })
          }, 2000)
        }
      }
    })
  },
  checkNUll(value, defaultv, msg) {
    if (value == null || value == "" || value == defaultv || value == undefined) {
      this.setData(
        { popErrorMsg: msg }
      );
      this.ohShitfadeOut();
      return false;
    }
    return true;
  },
  ohShitfadeOut() {
    var fadeOutTimeout = setTimeout(() => {
      this.setData({ popErrorMsg: '' });
      clearTimeout(fadeOutTimeout);
    }, 3000);
  },

})